/*****************************
 *@file: BDialog
 *@author: 陈吕唐
 *@desc: 自定义弹窗组件
 *@date: 2024-02-27	10:26
 *****************************/
import { Button, Component, _decorator } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('BDialog')
export default class BDialog extends Component {
    /****************************************************************************************************************
     *Readonly 常量
     ****************************************************************************************************************/
    /****************************************************************************************************************
     *Property 定义变量
     ****************************************************************************************************************/
    protected _param: any = undefined!;
    /***************************************************************
     *PropertyUI 引用的控件
     ***************************************************************/
    @property({ group: { name: 'Dialog', id: '1' }, type: Button, tooltip: `关闭弹窗按钮组件` })
    private closeButton: Button = undefined!;
    /****************************************************************************************************************
     * Lifecycle 生命周期相关方法
     ****************************************************************************************************************/
    protected onLoad(): void {
        this.closeButton?.node.on(Button.EventType.CLICK, this.closeDialog, this);
    }

    protected onEnable(): void {

    }
    /****************************************************************************************************************
     * Public 公有方法
     ****************************************************************************************************************/
    /****************************************************************************************************************
     * private 私有方法
     ****************************************************************************************************************/
    /**
     * 关闭当前弹窗
     */
    protected closeDialog() {
        this.node.removeFromParent();
    }
    /****************************************************************************************************************
     * Property Get && Set 属性的 get && set 函数
     ****************************************************************************************************************/
    public get param(): any {
        return this._param;
    }

    public set param(value: any) {
        this._param = value;
    }
}